#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdio.h>
#include <math.h>

using namespace std;

/* Primer Método */
float Gregory(int n)
{
    float r = 0; /* Resultado */
    int a;
    
    for (int i = 0; i <= n; i++)
    {
        a = 2*i + 1;      
        
        if (i % 2 == 0)
			r += 1.0/a;
		else
			r -= 1.0/a;
    }
        
    return r;
}

/* Segundo Método */
float arctan(int n, float x)
{
    float r = 0; /* Resultado */
    int aux;
    float a, b;
    
    for (int i = 0; i <= n; i++)
    {
        aux = 2*i + 1;
        a = 1.0/aux;
        b = pow(x, aux);
        
        if (i % 2 == 0)
			r += a * b;
		else
			r -= a * b;
    }
    
    return r;
}


float factorial(int n)
{
	float res = 1;
	
	for (int i = 2; i <= n; i++)	
		res *= i;
	
	return res;
}

/* Tercer Método */
float Ramanujan(int n)
{
    float r = 0; /* Resultado */
    float a, b, c, d;
    
    for (int i = 0; i <= n; i++)
    {
        a = factorial(4*i); 
        b = 1103.0 + 26390.0 * i;
        c = pow(factorial(i), 4);
        d = pow(396.0, 4*i);       

        r += (a * b) / (c * d);
    }
    
    return r;
}

float err(float aprox, float real)
{
	return fabs(aprox - real)/fabs(real);
}


int main()
{
	float pi = (float) 3.141592;
	float res;
	
	ifstream entrada	("Casos.in");
	ofstream salida1	("G.out");
	ofstream salida2	("M.out");
	ofstream salida3	("R.out");
	
	salida1.precision(7);
	salida2.precision(7);
	salida3.precision();
	
	int casos, n1, n2, n3;
	entrada >> casos;
	
	while (casos != 0) 
	{		
		/* Corro primer método. */
		entrada >> n1;
		res = Gregory(n1);
		res = res * 4.0;	
		/* n, resultado, error relativo. */
		salida1 << setfill ('0') << setw (3);
		salida1 << n1 << " ";
		salida1 << setfill (' ') << setw (7);
		salida1 << res << "     " << err(res, pi) << endl;
		
		/* Corro segundo método. */
		entrada >> n2;
		float a = 0.2;
		float b = 1.0/239.0;
    	res = 4.0*arctan(n2, a) - arctan(n2, b);
		res = res * 4.0;	
		/* n, resultado, error relativo. */
		salida2 << setfill ('0') << setw (3);
		salida2 << n2 << " ";
		salida2 << setfill (' ') << setw (7);
		salida2 << res << "     " << err(res, pi) << endl;
				
		/* Corro tercer método. */
		entrada >> n3;
		res = sqrt(8)/9801.0 * Ramanujan(n3);
		res = 1.0/res;
		/* n, resultado, error relativo. */
		salida3 << setfill ('0') << setw (3);
		salida3 << n3 << " ";
		salida3 << setfill (' ') << setw (7);
		salida3 << res << "     " << err(res, pi) << endl;
		
		casos --;
	}
	
    return 0;
}
